#pragma once

#include "BaseState.h"
#include <vector>

class CDebugAABB;
class DialogueSequence;

class GameplayState : public BaseState
{
private:
	bool m_bIsTalking;				//Detect if the player is talking to an NPC
	bool m_bInputDialougeBuffer;	//Input for beginning dialogue
	unsigned int  m_nNumNPCs;		//Number of NPCs in world map
	std::vector<CDebugAABB*> m_vNPCs;	//Vector of NPCs
	BaseObject2D* m_pCursor;
	BaseObject2D* m_pSpells;
	BaseObject* m_Tree;

private:
	GameplayState(void);
	GameplayState(GameplayState&);
	~GameplayState(void);
	GameplayState& operator=(GameplayState&);

	//Helper
	void CreateEnvironment();
	void CheckNPCs();

public:
	static GameplayState* GetInstance() { static GameplayState instance; return &instance; }

	int m_nDialogueFlags;

	DialogueSequence* m_pSequence;

	virtual void Init();
	virtual void Update(float _dt);
	virtual void Render();
	virtual void Shutdown();
};
